import http from './http'

/**
 * 获取用户列表
 * @param {Object} params 分页参数
 * @returns {Promise} 响应Promise
 */
export function getUserList(params) {
  return http.get('/api/users', { params })
}

/**
 * 获取用户详情
 * @param {number} id 用户ID
 * @returns {Promise} 响应Promise
 */
export function getUserDetail(id) {
  return http.get(`/api/users/${id}`)
}

/**
 * 创建用户
 * @param {Object} data 用户数据
 * @returns {Promise} 响应Promise
 */
export function createUser(data) {
  // 处理日期格式
  const processedData = { ...data };
  if (processedData.birthDate && typeof processedData.birthDate === 'string') {
    // 确保日期是ISO格式
    if (!processedData.birthDate.includes('T')) {
      processedData.birthDate = `${processedData.birthDate.split(' ')[0]}T00:00:00`;
    }
  }
  
  return http.post('/api/users/admin/create', processedData)
}

/**
 * 更新用户
 * @param {number} id 用户ID
 * @param {Object} data 用户数据
 * @returns {Promise} 响应Promise
 */
export function updateUser(id, data) {
  return http.put(`/users/${id}`, data)
}

/**
 * 管理员更新用户信息
 * @param {number} id 用户ID
 * @param {Object} data 用户数据
 * @returns {Promise} 响应Promise
 */
export function adminUpdateUser(id, data) {
  // 处理日期格式
  const processedData = { ...data };
  if (processedData.birthDate && typeof processedData.birthDate === 'string') {
    // 确保日期是ISO格式
    if (!processedData.birthDate.includes('T')) {
      processedData.birthDate = `${processedData.birthDate.split(' ')[0]}T00:00:00`;
    }
  }
  
  return http.put(`/api/users/admin/${id}`, processedData)
}

/**
 * 删除用户
 * @param {number} id 用户ID
 * @returns {Promise} 响应Promise
 */
export function deleteUser(id) {
  return http.delete(`/api/users/${id}`)
}

/**
 * 修改用户状态
 * @param {number} id 用户ID
 * @param {string} status 用户状态
 * @returns {Promise} 响应Promise
 */
export function changeUserStatus(id, status) {
  return http.put(`/users/${id}/status`, { status })
}

/**
 * 重置用户密码
 * @param {number} id 用户ID
 * @returns {Promise} 响应Promise
 */
export function resetUserPassword(id) {
  return http.put(`/users/${id}/reset-password`)
}

/**
 * 更新当前用户资料
 * @param {Object} data 用户资料
 * @returns {Promise} 响应Promise
 */
export function updateUserProfile(data) {
  // 确保数据格式正确
  const processedData = { ...data };
  
  // 处理日期格式
  if (processedData.birthDate && typeof processedData.birthDate === 'string') {
    // 确保日期是ISO格式
    if (!processedData.birthDate.includes('T')) {
      processedData.birthDate = `${processedData.birthDate.split(' ')[0]}T00:00:00`;
    }
  }
  
  console.log('发送更新用户请求，处理后的数据:', processedData);
  
  return http.put('/api/users/profile', processedData);
}

/**
 * 修改密码
 * @param {string} currentPassword 当前密码
 * @param {string} newPassword 新密码
 * @returns {Promise} 响应Promise
 */
export function changePassword(currentPassword, newPassword) {
  return http.put('/api/users/change-password', null, {
    params: {
      currentPassword,
      newPassword
    }
  })
} 